CodiBit
Управляем
таймером
используем метод is_released() для определения
момента отпускания кнопки;
научимся фиксировать состояние удержания
кнопки с помощью логической переменной;
разработаем проект "Таймер", определяющий
длительность удержания кнопки пользователем.
Сегодня на уроке мы:
Нажмите кнопку
Подключить
Подготовка
Нужно подключить
шнур Type-C - USB Среда загрузки кода
Подключите
CodiBit к
компьютеру
Откройте
редактор кода
CodiEditor
Структура кода
Что делает?
Как использовать?
Определяет момент отпускания кнопки.Возвращает True только в тот момент, когда кнопку
отпустили, а в остальное время False.
1) Найдите блок
2) Перетащите его в область кода;
3) Используйте его как значение, то есть внутри других
блоков (в переменных, условиях, циклах и т.д.)
🎯Функция
Загрузите код и проверьте результат.
Кнопка B работает аналогично.
Фиксируем удержание
кнопки
Таким образом можно фиксировать удержание кнопки и имитировать работу функции
is_holding().
Идея:
Создадим переменную holding,чтобы запомнить состояние кнопки.
кнопку нажали holding = True
кнопку отпустили holding = False
⏱⏱Запуск таймера
Бесконечный цикл while True:
Программа постоянно проверяет, нажата ли кнопка A.
Обработка клика (старт таймера)
Если кнопку нажали (клик):
включаем режим удержания: holding = True
обнуляем таймер: timer = 0, запускаем измерение заново
Счёт времени, пока удерживаем
Если holding == True:
значит удержание идёт: timer = timer + 1, добавляем 1
рисуем значения на экране
Логическая переменная holding
on = False по умолчанию кнопка не нажата.
holding хранит только два значения: True (кнопка нажата)
или False (кнопка отпущена)
Остановка таймера при отпускании
Если кнопку отпустили:
выключаем режим удержания: holding = False
останавливаем таймер
Предскажи
Что выдаст данный код?
Предскажи
Ответ
При удержании кнопки A на
дисплей выводится надпись
HOLDING и остается на нем,
так как отсутствует команда
display.clear()
Предскажи
Что выдаст данный код?
Предскажи
Ответ
Текст будет
накладываться друг на
друга.
“Сейф с кодом удержания”
Задание
Сделайте программу, которая открывает СЕЙФтолько
если кнопку A держали ровно 5 сек.
Пока кнопку A держат таймер запущен
Таймер обнуляется при каждом клике кнопки A
Когда кнопку A отпустили:
1) если удержание короче или дольше чем 5 с
показать DENIED
2) если удержание ровно 5 споказать OPEN
“Зарядка
Задание
Сделайте программу Зарядка, где длительность
удержания кнопки A заряжаетCodiBit.
По клику кнопки A → заряд обнуляется и начинается
зарядка (в процентах или в виде фигуры, например
заполняющийся прямоугольник или круг)
Пока кнопку A держат заряд растёт и на экране
показывается полоска заряда
Когда кнопку A отпустили заряд фиксируется:
1) на экране вывести READY и процент заряда
2) если заряд меньше 50 → светодиоды красные
3) если заряд больше 50 → светодиоды зелёные
Сегодня на уроке мы:
использовали метод is_released() для определения
момента отпускания кнопки;
научились фиксировать состояние удержания
кнопки с помощью логической переменной;
разработали проект "Таймер", определяющий
длительность удержания кнопки пользователем.
Термины
button_a.is_pressed(): функция, которая срабатывает один раз при нажатии кнопки.
Используется для запуска таймера и обнуления счётчика перед началом измерения.
button_a.is_holding(): функция, которая возвращает состояние удержания кнопки.
Используется для определения момента, когда таймер должен работать и увеличивать
значение.
button_a.is_released(): функция, которая срабатывает в момент отпускания кнопки.
Используется для остановки таймера и фиксации результата измерения.
Таймер: приём в программировании, при котором время измеряется с помощью переменной. В
уроке таймер используется для определения длительности удержания кнопки.
Счётчик таймера: переменная, которая увеличивается на каждом шаге таймера. Показывает,
сколько времени кнопка удерживалась.
Шаг таймера: одно увеличение значения счётчика. Длительность шага задаётся с помощью
time.sleep() и определяет точность измерения времени.
Логическая переменная: переменная, которая хранит только два значения True иFalse. В
уроке используется для хранения состояния таймера (работает он или нет).
Ответ на задание
“Сейф с кодом
удержания”
Ответ на задание
“Зарядка”